A strategy for array management in local memory
Identifieur interne : 000298 ( France/Analysis ); précédent : 000297; suivant : 000299A strategy for array management in local memory
Auteurs : Christine Eisenbeis [France] ; William Jalby [France] ; Daniel Windheiser [France] ; François Bodin [France]Source :
- Mathematical Programming [ 0025-5610 ] ; 1994-01-01.
English descriptors
- Teeft :
- Algorithm, Analytical model, Approximate window, Approximate windows, Approximation, Approximation window, Arbitrary point, Array, Array element, Array elements, Array management, Atomic dependence graph, Basic idea, Best solution, Block sizes, Cache, Classical knapsack problem, Code generation process, Coherence, Coherence constraints, Complex behavior, Computation, Constant shape, Convex hull, Corresponding window, Corresponding windows, Data accesses, Data dependencies, Data locality, Data locality optimization, Data transfers, Dependence graph, Dependency, Different occurrences, Distinct elements, Dominant window, Eisenbeis, Exact reference windows, Execution order, Extreme points, First case, First problem, General results, General structure, Geometric properties, Geometrical framework, Global strategy, Hyperplane, Innermost, Innermost loop, Innermost loops, Input dependence, Integer, Integer coordinates, Integer points, International conference, Iteration, Iteration space, Iteration vector, Knapsack, Knapsack problem, Large number, Last iteration, Limited size, Linear function, Linear references, Loading strategy, Local memories, Local memory, Local memory management, Local memory management strategy, Local memory size, Local memory space, Locality, Locality properties, Loop, Loop body, Loop bounds, Loop execution, Loop interchange, Loop restructuring, Loop reversal, Loop transformations, Main memory, Main memory accesses, Main result, Management problem, Management strategy, Memory locations, Memory management, Memory references, Memory space, Multiple copies, Next section, Optimization, Optimized code, Other hand, Outer loop, Outermost loops, Parallelepiped, Parallelization, Previous example, Previous section, Previous studies, Program transformation, Rational interval, Reference window, Reference windows, Referenced, Rice university, Same memory location, Second case, Section details, Simple case, Small example, Spatial locality, Special cases, Spot contention, Standard polynomial algorithms, Submodule span, Subset, Such cases, Technical report, Temporary array, Theoretical point, Time step, Time steps, Timing function, Total number, Tradeoff, Uniprocessor case, Vector form, Vector length, Vectorization, Window approximation, Window approximations, Window characterization, Window computation, Window size, Window size computation, Window sizes.
Abstract
Abstract: One major point in loop restructuring for data locality optimization is the choice and the evaluation of data locality criteria. In this paper we show how to compute approximations of window sets defined by Gannon, Jalby, and Gallivan. The window associated with an iterationi describes the “active” portion of an array: elements that have already been referenced before iterationi and that will be referenced after iterationi. Such a notion is extremely useful for data localization because it identifies the portions of arrays that are worth keeping in local memory because they are going to be referenced later. The computation of these window approximations can be performed symbolically at compile time and generates a simple geometrical shape that simplifies the management of the data transfers. This strategy allows derivation of a global strategy of data management for local memories which may be combined efficiently with various parallelization and/or vectorization optimizations. Indeed, the effects of loop transformations fit naturally into the geometrical framework we use for the calculations. The determination of window approximations is studied both from a theoretical and a computational point of view, and examples of applications are given.
Url:
DOI: 10.1007/BF01582075
Affiliations:
Links toward previous steps (curation, corpus...)
- to stream Istex, to step Corpus: 000C28
- to stream Istex, to step Curation: 000C28
- to stream Istex, to step Checkpoint: 000C16
- to stream Main, to step Merge: 001F27
- to stream Main, to step Curation: 001E45
- to stream Main, to step Exploration: 001E45
- to stream France, to step Extraction: 000298
Links to Exploration step
ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275DLe document en format XML
<record><TEI wicri:istexFullTextTei="biblStruct"><teiHeader><fileDesc><titleStmt><title xml:lang="en">A strategy for array management in local memory</title>
<author><name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
</author>
<author><name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
</author>
<author><name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
</author>
<author><name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">ISTEX</idno>
<idno type="RBID">ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D</idno>
<date when="1994" year="1994">1994</date>
<idno type="doi">10.1007/BF01582075</idno>
<idno type="url">https://api.istex.fr/ark:/67375/1BB-8LHSZTFV-1/fulltext.pdf</idno>
<idno type="wicri:Area/Istex/Corpus">000C28</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Corpus" wicri:corpus="ISTEX">000C28</idno>
<idno type="wicri:Area/Istex/Curation">000C28</idno>
<idno type="wicri:Area/Istex/Checkpoint">000C16</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Checkpoint">000C16</idno>
<idno type="wicri:doubleKey">0025-5610:1994:Eisenbeis C:a:strategy:for</idno>
<idno type="wicri:Area/Main/Merge">001F27</idno>
<idno type="wicri:Area/Main/Curation">001E45</idno>
<idno type="wicri:Area/Main/Exploration">001E45</idno>
<idno type="wicri:Area/France/Extraction">000298</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title level="a" type="main" xml:lang="en">A strategy for array management in local memory</title>
<author><name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
<affiliation wicri:level="3"><country xml:lang="fr">France</country>
<wicri:regionArea>INRIA Rocquencourt, 78153, Le Chesnay</wicri:regionArea>
<placeName><region type="region" nuts="2">Île-de-France</region>
<settlement type="city">Le Chesnay</settlement>
</placeName>
</affiliation>
</author>
<author><name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
<affiliation wicri:level="3"><country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName><region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
<author><name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
<affiliation wicri:level="3"><country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName><region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
<author><name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
<affiliation wicri:level="3"><country xml:lang="fr">France</country>
<wicri:regionArea>IRISA/INRIA Rennes, Rennes</wicri:regionArea>
<placeName><region type="region">Région Bretagne</region>
<region type="old region">Région Bretagne</region>
<settlement type="city">Rennes</settlement>
</placeName>
</affiliation>
</author>
</analytic>
<monogr></monogr>
<series><title level="j">Mathematical Programming</title>
<title level="j" type="abbrev">Mathematical Programming</title>
<idno type="ISSN">0025-5610</idno>
<idno type="eISSN">1436-4646</idno>
<imprint><publisher>Springer-Verlag</publisher>
<pubPlace>Berlin/Heidelberg</pubPlace>
<date type="published" when="1994-01-01">1994-01-01</date>
<biblScope unit="volume">63</biblScope>
<biblScope unit="issue">1-3</biblScope>
<biblScope unit="page" from="331">331</biblScope>
<biblScope unit="page" to="370">370</biblScope>
</imprint>
<idno type="ISSN">0025-5610</idno>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt><idno type="ISSN">0025-5610</idno>
</seriesStmt>
</fileDesc>
<profileDesc><textClass><keywords scheme="Teeft" xml:lang="en"><term>Algorithm</term>
<term>Analytical model</term>
<term>Approximate window</term>
<term>Approximate windows</term>
<term>Approximation</term>
<term>Approximation window</term>
<term>Arbitrary point</term>
<term>Array</term>
<term>Array element</term>
<term>Array elements</term>
<term>Array management</term>
<term>Atomic dependence graph</term>
<term>Basic idea</term>
<term>Best solution</term>
<term>Block sizes</term>
<term>Cache</term>
<term>Classical knapsack problem</term>
<term>Code generation process</term>
<term>Coherence</term>
<term>Coherence constraints</term>
<term>Complex behavior</term>
<term>Computation</term>
<term>Constant shape</term>
<term>Convex hull</term>
<term>Corresponding window</term>
<term>Corresponding windows</term>
<term>Data accesses</term>
<term>Data dependencies</term>
<term>Data locality</term>
<term>Data locality optimization</term>
<term>Data transfers</term>
<term>Dependence graph</term>
<term>Dependency</term>
<term>Different occurrences</term>
<term>Distinct elements</term>
<term>Dominant window</term>
<term>Eisenbeis</term>
<term>Exact reference windows</term>
<term>Execution order</term>
<term>Extreme points</term>
<term>First case</term>
<term>First problem</term>
<term>General results</term>
<term>General structure</term>
<term>Geometric properties</term>
<term>Geometrical framework</term>
<term>Global strategy</term>
<term>Hyperplane</term>
<term>Innermost</term>
<term>Innermost loop</term>
<term>Innermost loops</term>
<term>Input dependence</term>
<term>Integer</term>
<term>Integer coordinates</term>
<term>Integer points</term>
<term>International conference</term>
<term>Iteration</term>
<term>Iteration space</term>
<term>Iteration vector</term>
<term>Knapsack</term>
<term>Knapsack problem</term>
<term>Large number</term>
<term>Last iteration</term>
<term>Limited size</term>
<term>Linear function</term>
<term>Linear references</term>
<term>Loading strategy</term>
<term>Local memories</term>
<term>Local memory</term>
<term>Local memory management</term>
<term>Local memory management strategy</term>
<term>Local memory size</term>
<term>Local memory space</term>
<term>Locality</term>
<term>Locality properties</term>
<term>Loop</term>
<term>Loop body</term>
<term>Loop bounds</term>
<term>Loop execution</term>
<term>Loop interchange</term>
<term>Loop restructuring</term>
<term>Loop reversal</term>
<term>Loop transformations</term>
<term>Main memory</term>
<term>Main memory accesses</term>
<term>Main result</term>
<term>Management problem</term>
<term>Management strategy</term>
<term>Memory locations</term>
<term>Memory management</term>
<term>Memory references</term>
<term>Memory space</term>
<term>Multiple copies</term>
<term>Next section</term>
<term>Optimization</term>
<term>Optimized code</term>
<term>Other hand</term>
<term>Outer loop</term>
<term>Outermost loops</term>
<term>Parallelepiped</term>
<term>Parallelization</term>
<term>Previous example</term>
<term>Previous section</term>
<term>Previous studies</term>
<term>Program transformation</term>
<term>Rational interval</term>
<term>Reference window</term>
<term>Reference windows</term>
<term>Referenced</term>
<term>Rice university</term>
<term>Same memory location</term>
<term>Second case</term>
<term>Section details</term>
<term>Simple case</term>
<term>Small example</term>
<term>Spatial locality</term>
<term>Special cases</term>
<term>Spot contention</term>
<term>Standard polynomial algorithms</term>
<term>Submodule span</term>
<term>Subset</term>
<term>Such cases</term>
<term>Technical report</term>
<term>Temporary array</term>
<term>Theoretical point</term>
<term>Time step</term>
<term>Time steps</term>
<term>Timing function</term>
<term>Total number</term>
<term>Tradeoff</term>
<term>Uniprocessor case</term>
<term>Vector form</term>
<term>Vector length</term>
<term>Vectorization</term>
<term>Window approximation</term>
<term>Window approximations</term>
<term>Window characterization</term>
<term>Window computation</term>
<term>Window size</term>
<term>Window size computation</term>
<term>Window sizes</term>
</keywords>
</textClass>
<langUsage><language ident="en">en</language>
</langUsage>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Abstract: One major point in loop restructuring for data locality optimization is the choice and the evaluation of data locality criteria. In this paper we show how to compute approximations of window sets defined by Gannon, Jalby, and Gallivan. The window associated with an iterationi describes the “active” portion of an array: elements that have already been referenced before iterationi and that will be referenced after iterationi. Such a notion is extremely useful for data localization because it identifies the portions of arrays that are worth keeping in local memory because they are going to be referenced later. The computation of these window approximations can be performed symbolically at compile time and generates a simple geometrical shape that simplifies the management of the data transfers. This strategy allows derivation of a global strategy of data management for local memories which may be combined efficiently with various parallelization and/or vectorization optimizations. Indeed, the effects of loop transformations fit naturally into the geometrical framework we use for the calculations. The determination of window approximations is studied both from a theoretical and a computational point of view, and examples of applications are given.</div>
</front>
</TEI>
<affiliations><list><country><li>France</li>
</country>
<region><li>Région Bretagne</li>
<li>Île-de-France</li>
</region>
<settlement><li>Le Chesnay</li>
<li>Rennes</li>
</settlement>
</list>
<tree><country name="France"><region name="Île-de-France"><name sortKey="Eisenbeis, Christine" sort="Eisenbeis, Christine" uniqKey="Eisenbeis C" first="Christine" last="Eisenbeis">Christine Eisenbeis</name>
</region>
<name sortKey="Bodin, Francois" sort="Bodin, Francois" uniqKey="Bodin F" first="François" last="Bodin">François Bodin</name>
<name sortKey="Jalby, William" sort="Jalby, William" uniqKey="Jalby W" first="William" last="Jalby">William Jalby</name>
<name sortKey="Windheiser, Daniel" sort="Windheiser, Daniel" uniqKey="Windheiser D" first="Daniel" last="Windheiser">Daniel Windheiser</name>
</country>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Sante/explor/H2N2V1/Data/France/Analysis
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000298 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/France/Analysis/biblio.hfd -nk 000298 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Sante |area= H2N2V1 |flux= France |étape= Analysis |type= RBID |clé= ISTEX:4BE0B51D8EED8EFB43D01F7DAD47DF902805275D |texte= A strategy for array management in local memory }}
This area was generated with Dilib version V0.6.33. |